/**
 * createRouter 这个为创建路由的方法
 * createWebHashHistory 这个就是vue2中路由的模式， 这里的是hash模式，这个还可以是createWebHistory等
 * RouteRecordRaw 这个为要添加的路由记录，也可以说是routes的ts类型
 */
import {
    createRouter,
    createWebHistory,
    RouteRecordRaw
} from "vue-router"

import Home from '@/views/home/Home.vue'
import Salary from '@/views/salary/salary.vue'
import Sales from '@/views/sales/sales.vue'
import NProgress from '@/utils/nprogress'

// 路由记录
const routes: Array<RouteRecordRaw>  = [
    {
        path: '/',
        name: 'index',
        component: Home,
        meta:{
            title: '中山市嘉晖金属制品有限公司'
        }
    },
    {
        path: '/salary',
        name: 'salary',
        component: Salary,
        meta:{
            title: '中山市嘉晖金属制品有限公司'
        }
    },
    {
        path: '/sales',
        name: 'sales',
        component: Sales,
        meta:{
            title: '中山市嘉晖金属制品有限公司'
        }
    }
]

const router = createRouter({
    history: createWebHistory(),
    routes
})

/**
 * @description 路由拦截 beforeEach
 * */
router.beforeEach(async (to, from, next) => {
    // 1.NProgress 开始
    NProgress.start()
    // 2.动态设置标题
    document.title = to.meta.title
    // 正常访问页面
    next()
})

/**
 * @description 路由跳转错误
 * */
router.onError((error) => {
    NProgress.done()
})

/**
 * @description 路由跳转结束
 * */
router.afterEach(() => {
    NProgress.done()
})

export default router;
